package com.love.marriage.matchmakerInfo.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.love.marriage.common.vo.BaseVo;
import com.love.marriage.config.Long2StringSerializer;
import com.love.marriage.oss.vo.FileInfoVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.time.LocalDate;

/**
 * description:  红娘信息表Vo
 * author:       alex
 * createDate:   2024-11-05 22:09:26
 * version:      1.0.0
 */
@Getter
@Setter
@Accessors(chain = true)
@Schema(name = "MatchmakerInfoVo", description = "红娘信息表Vo")
public class MatchmakerInfoVo extends BaseVo<MatchmakerInfoVo>{

    @JsonSerialize(using = Long2StringSerializer.class)
    @Schema(description = "红娘照片ID，关联存储的照片文件", type = "Long", implementation = Long.class)
    private Long photoId;

    @JsonSerialize(using = Long2StringSerializer.class)
    @Schema(description = "用户id", type = "Long", implementation = Long.class)
    private Long userId;

    @Schema(description = "头像url", type = "String", implementation = String.class)
    private String photoUrl;

    @Schema(description = "头像文件信息", type = "FileInfoVo", implementation = FileInfoVo.class)
    private FileInfoVo photoFileInfoVo;

    @Schema(description = "姓名", type = "String", implementation = String.class)
    private String name;

    @Schema(description = "出生年月日", type = "LocalDate", implementation = LocalDate.class)
    private LocalDate birthDate;

    @Schema(description = "联系方式", type = "String", implementation = String.class)
    private String contactPhone;

    @JsonSerialize(using = Long2StringSerializer.class)
    @Schema(description = "省份ID", type = "Long", implementation = Long.class)
    private Long provinceId;

    @JsonSerialize(using = Long2StringSerializer.class)
    @Schema(description = "城市ID", type = "Long", implementation = Long.class)
    private Long cityId;

    @JsonSerialize(using = Long2StringSerializer.class)
    @Schema(description = "县区ID", type = "Long", implementation = Long.class)
    private Long districtId;

    @Schema(description = "入职日期（年月日）", type = "LocalDate", implementation = LocalDate.class)
    private LocalDate entryDate;

    @Schema(description = "擅长领域", type = "String", implementation = String.class)
    private String expertise;

    @Schema(description = "职级（字典：positionLevel）", type = "String", implementation = String.class)
    private String positionLevel;

    @Schema(description = "职级名称", type = "String", implementation = String.class)
    private String positionLevelName;

    @JsonSerialize(using = Long2StringSerializer.class)
    @Schema(description = "微信二维码图片文件ID", type = "Long", implementation = Long.class)
    private Long wechatQrcodeId;

    @Schema(description = "二维码url", type = "String", implementation = String.class)
    private String wechatQrcodeUrl;

    @Schema(description = "省名称", type = "String", implementation = String.class)
    private String provinceName;

    @Schema(description = "城市名称", type = "String", implementation = String.class)
    private String cityName;

    @Schema(description = "区名称", type = "String", implementation = String.class)
    private String districtName;

    @Schema(description = "二维码文件信息", type = "FileInfoVo", implementation = FileInfoVo.class)
    private FileInfoVo wechatQrcodeFileInfoVo;

    @Schema(description = "性别(0：男，1：女)", type = "String", implementation = String.class)
    private String gender;

    @Schema(description = "编码", type = "Integer", implementation = Integer.class)
    private Integer no;

    @Schema(description = "用户编码", type = "String", implementation = String.class)
    private String code;

    @Schema(description = "状态（1：审批中，2：审批通过）", type = "Integer", implementation = Integer.class)
    private Integer status;

    @Schema(description = "单身标识", type = "Boolean", implementation = Boolean.class)
    private Boolean singleFlag;
}
